package com.ruoyi.project.mgr.arrange.mapper;

import com.ruoyi.project.mgr.arrange.domain.MgrCourseArrange;
import com.ruoyi.project.mgr.arrange.vo.MonthDayVO;
import com.ruoyi.project.mgr.arrange.vo.WeekDayVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 课程安排Mapper接口
 *
 * @author .
 * @date 2020-02-11
 */
public interface MgrCourseArrangeMapper {
    /**
     * 查询课程安排
     *
     * @param id 课程安排ID
     * @return 课程安排
     */
    public MgrCourseArrange selectMgrCourseArrangeById(Long id);

    /**
     * 查询课程安排列表
     *
     * @param mgrCourseArrange 课程安排
     * @return 课程安排集合
     */
    public List<MgrCourseArrange> selectMgrCourseArrangeList(MgrCourseArrange mgrCourseArrange);

    /**
     * 新增课程安排
     *
     * @param mgrCourseArrange 课程安排
     * @return 结果
     */
    public int insertMgrCourseArrange(MgrCourseArrange mgrCourseArrange);

    /**
     * 修改课程安排
     *
     * @param mgrCourseArrange 课程安排
     * @return 结果
     */
    public int updateMgrCourseArrange(MgrCourseArrange mgrCourseArrange);

    /**
     * 删除课程安排
     *
     * @param id 课程安排ID
     * @return 结果
     */
    public int deleteMgrCourseArrangeById(Long id);

    /**
     * 批量删除课程安排
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteMgrCourseArrangeByIds(String[] ids);

    public List<MonthDayVO> selectDays(List<String> dayList);


    /**
     * 查询时间范围内的数据
     *
     * @param weekDayVO
     * @return
     */
    public List<WeekDayVO> selectMyArrange(WeekDayVO weekDayVO);

    /**
     * 查询其他课教师程安排列表进行调课
     *
     * @param mgrCourseArrange 课程安排
     * @return 课程安排集合
     */
    public List<MgrCourseArrange> selectOtherCourseArrangeList(MgrCourseArrange mgrCourseArrange);

    /**
     * 查询当前教师的课程和处理申请
     * @param mgrCourseArrange
     * @return
     */
    public List<MgrCourseArrange> selectMyCourseArrangeList(MgrCourseArrange mgrCourseArrange);
}
